﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Nuane.Posterous
{
	/// <summary>
	/// Base class for all posterous collections.
	/// </summary>
	/// <typeparam name="T"></typeparam>
	public abstract class PosterousCollection<T> : List<T>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousComment">posterous comments</see>.
	/// </summary>
	public class PosterousCommentCollection : PosterousCollection<PosterousComment>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousComment">posterous comments</see>.
	/// </summary>
	public class PosterousImageCollection : PosterousCollection<PosterousImage>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousComment">posterous comments</see>.
	/// </summary>
	public class PosterousAudioCollection : PosterousCollection<PosterousAudio>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousComment">posterous comments</see>.
	/// </summary>
	public class PosterousVideoCollection : PosterousCollection<PosterousVideo>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousPost">posterous comments</see>.
	/// </summary>
	public class PosterousPostCollection : PosterousCollection<PosterousPost>
	{		
	}

	/// <summary>
	/// Collection of <see cref="PosterousFile">posterous new post attachmets</see>.
	/// </summary>
	public class PosterousFileCollection : PosterousCollection<PosterousFile>
	{
		/// <summary>
		/// Adds the specified file to the collection.
		/// </summary>
		/// <param name="fileName">Path to the file.</param>
		public void Add(string fileName)
		{
			base.Add(new PosterousFile(fileName));
		}
	}

	/// <summary>
	/// Collection of <see cref="PosterousSite">posterous site infos</see>.
	/// </summary>
	public class PosterousSiteCollection : PosterousCollection<PosterousSite>
	{
	}

}
